#!/bin/bash
# 启动所有服务

set -e

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
DOCKER_DIR="$PROJECT_ROOT/docker"

echo "🚀 启动所有服务..."
echo "=================================================="

# 检查 .env 文件
if [ ! -f "$PROJECT_ROOT/.env" ]; then
    echo "⚠️  警告: .env 文件不存在"
    echo "💡 提示: 请复制 .env.example 为 .env 并配置 LLM_API_KEY"
    echo ""
fi

# 切换到项目根目录（docker-compose 需要从这里执行以正确加载 .env）
cd "$PROJECT_ROOT"

# 停止 Flink 相关服务（如果在运行）
echo "🛑 停止 Flink Agents（如果在运行）..."
docker-compose -f docker/docker-compose.yml stop flink-jobmanager flink-taskmanager flink-agents-processor flink-cluster-processor 2>/dev/null || true

# 启动所有容器
echo "📦 启动 Docker 容器..."
docker-compose -f docker/docker-compose.yml --env-file .env --profile default up -d

# 等待服务启动
echo "⏳ 等待服务启动（5秒）..."
sleep 5

# 检查服务状态
echo ""
echo "📊 服务状态："
echo "=================================================="
docker ps --filter "name=browse-etl" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

# 检查LocalStack健康状态
echo ""
echo "🔍 检查 LocalStack 健康状态..."
if curl -s http://localhost:4566/_localstack/health > /dev/null 2>&1; then
    echo "✅ LocalStack 已就绪"
else
    echo "⚠️  LocalStack 可能还在启动中，请稍后再检查"
fi

# 检查PostgreSQL
echo ""
echo "🔍 检查 PostgreSQL..."
if docker exec browse-etl-postgres pg_isready -U postgres > /dev/null 2>&1; then
    echo "✅ PostgreSQL 已就绪"
else
    echo "⚠️  PostgreSQL 可能还在启动中"
fi

echo ""
echo "=================================================="
echo "✅ 所有服务启动完成（consumer.py 模式）"
echo ""
# 记录当前模式
echo "consumer" > /tmp/browse-etl-mode
echo "📝 快捷命令："
echo "   部署Lambda: make deploy"
echo "   运行测试: make test"
echo "   切换到 Flink: make start-flink"
echo "   查看日志: make logs-event"
echo "=================================================="

